﻿/*
# -*- coding: utf-8 -*-
# 注意：

# 若希望将本代码用于商业用途，需先联系作者并获得明确授权。
# 作者不对因使用本代码引发的任何直接或间接损失负责。
# 如有违反上述条款的行为，作者保留追究法律责任的权利。

# 免责声明：
# 请尊重知识产权，遵循相关法律法规。

# Notice:
# If you wish to use this code for commercial purposes, you must contact the author and obtain explicit authorization.
# The author is not responsible for any direct or indirect losses caused by the use of this code.
# If any of the above terms are violated, the author reserves the right to pursue legal action.
# Disclaimer:
# Please respect intellectual property rights and comply with relevant laws and regulations.

# Внимание:
# Если вы хотите использовать этот код в коммерческих целях, вам необходимо связаться с автором и получить явное разрешение.
# Автор не несет ответственности за любые прямые или косвенные убытки, возникшие в результате использования этого кода.
# В случае нарушения вышеуказанных условий автор оставляет за собой право на юридическое преследование.
# Отказ от ответственности:
# Пожалуйста, уважайте интеллектуальную собственность и соблюдайте соответствующие законы и нормативные акты.

# Attention :
# Si vous souhaitez utiliser ce code à des fins commerciales, vous devez contacter l'auteur et obtenir une autorisation explicite.
# L'auteur n'est pas responsable des pertes directes ou indirectes causées par l'utilisation de ce code.
# En cas de violation des conditions ci-dessus, l'auteur se réserve le droit de poursuivre une action en justice.
# Avertissement :
# Veuillez respecter les droits de propriété intellectuelle et vous conformer aux lois et réglementations en vigueur.

# 注意：

# 若希望将本代码用于商业用途，需先联系作者并获得明确授权。
# 作者不对因使用本代码引发的任何直接或间接损失负责。
# 如有违反上述条款的行为，作者保留追究法律责任的权利。

# 免责声明：
# 请尊重知识产权，遵循相关法律法规。

# Notice:
# If you wish to use this code for commercial purposes, you must contact the author and obtain explicit authorization.
# The author is not responsible for any direct or indirect losses caused by the use of this code.
# If any of the above terms are violated, the author reserves the right to pursue legal action.
# Disclaimer:
# Please respect intellectual property rights and comply with relevant laws and regulations.

# Внимание:
# Если вы хотите использовать этот код в коммерческих целях, вам необходимо связаться с автором и получить явное разрешение.
# Автор не несет ответственности за любые прямые или косвенные убытки, возникшие в результате использования этого кода.
# В случае нарушения вышеуказанных условий автор оставляет за собой право на юридическое преследование.
# Отказ от ответственности:
# Пожалуйста, уважайте интеллектуальную собственность и соблюдайте соответствующие законы и нормативные акты.

# Attention :
# Si vous souhaitez utiliser ce code à des fins commerciales, vous devez contacter l'auteur et obtenir une autorisation explicite.
# L'auteur n'est pas responsable des pertes directes ou indirectes causées par l'utilisation de ce code.
# En cas de violation des conditions ci-dessus, l'auteur se réserve le droit de poursuivre une action en justice.
# Avertissement :
# Veuillez respecter les droits de propriété intellectuelle et vous conformer aux lois et réglementations en vigueur.

# 注意：

# 若希望将本代码用于商业用途，需先联系作者并获得明确授权。
# 作者不对因使用本代码引发的任何直接或间接损失负责。
# 如有违反上述条款的行为，作者保留追究法律责任的权利。

# 免责声明：
# 请尊重知识产权，遵循相关法律法规。

# Notice:
# If you wish to use this code for commercial purposes, you must contact the author and obtain explicit authorization.
# The author is not responsible for any direct or indirect losses caused by the use of this code.
# If any of the above terms are violated, the author reserves the right to pursue legal action.
# Disclaimer:
# Please respect intellectual property rights and comply with relevant laws and regulations.

# Внимание:
# Если вы хотите использовать этот код в коммерческих целях, вам необходимо связаться с автором и получить явное разрешение.
# Автор не несет ответственности за любые прямые или косвенные убытки, возникшие в результате использования этого кода.
# В случае нарушения вышеуказанных условий автор оставляет за собой право на юридическое преследование.
# Отказ от ответственности:
# Пожалуйста, уважайте интеллектуальную собственность и соблюдайте соответствующие законы и нормативные акты.

# Attention :
# Si vous souhaitez utiliser ce code à des fins commerciales, vous devez contacter l'auteur et obtenir une autorisation explicite.
# L'auteur n'est pas responsable des pertes directes ou indirectes causées par l'utilisation de ce code.
# En cas de violation des conditions ci-dessus, l'auteur se réserve le droit de poursuivre une action en justice.
# Avertissement :
# Veuillez respecter les droits de propriété intellectuelle et vous conformer aux lois et réglementations en vigueur.

# 注意：

# 若希望将本代码用于商业用途，需先联系作者并获得明确授权。
# 作者不对因使用本代码引发的任何直接或间接损失负责。
# 如有违反上述条款的行为，作者保留追究法律责任的权利。

# 免责声明：
# 请尊重知识产权，遵循相关法律法规。

# Notice:
# If you wish to use this code for commercial purposes, you must contact the author and obtain explicit authorization.
# The author is not responsible for any direct or indirect losses caused by the use of this code.
# If any of the above terms are violated, the author reserves the right to pursue legal action.
# Disclaimer:
# Please respect intellectual property rights and comply with relevant laws and regulations.

# Внимание:
# Если вы хотите использовать этот код в коммерческих целях, вам необходимо связаться с автором и получить явное разрешение.
# Автор не несет ответственности за любые прямые или косвенные убытки, возникшие в результате использования этого кода.
# В случае нарушения вышеуказанных условий автор оставляет за собой право на юридическое преследование.
# Отказ от ответственности:
# Пожалуйста, уважайте интеллектуальную собственность и соблюдайте соответствующие законы и нормативные акты.

# Attention :
# Si vous souhaitez utiliser ce code à des fins commerciales, vous devez contacter l'auteur et obtenir une autorisation explicite.
# L'auteur n'est pas responsable des pertes directes ou indirectes causées par l'utilisation de ce code.
# En cas de violation des conditions ci-dessus, l'auteur se réserve le droit de poursuivre une action en justice.
# Avertissement :
# Veuillez respecter les droits de propriété intellectuelle et vous conformer aux lois et réglementations en vigueur.

# 注意：

# 若希望将本代码用于商业用途，需先联系作者并获得明确授权。
# 作者不对因使用本代码引发的任何直接或间接损失负责。
# 如有违反上述条款的行为，作者保留追究法律责任的权利。

# 免责声明：
# 请尊重知识产权，遵循相关法律法规。

# Notice:
# If you wish to use this code for commercial purposes, you must contact the author and obtain explicit authorization.
# The author is not responsible for any direct or indirect losses caused by the use of this code.
# If any of the above terms are violated, the author reserves the right to pursue legal action.
# Disclaimer:
# Please respect intellectual property rights and comply with relevant laws and regulations.

# Внимание:
# Если вы хотите использовать этот код в коммерческих целях, вам необходимо связаться с автором и получить явное разрешение.
# Автор не несет ответственности за любые прямые или косвенные убытки, возникшие в результате использования этого кода.
# В случае нарушения вышеуказанных условий автор оставляет за собой право на юридическое преследование.
# Отказ от ответственности:
# Пожалуйста, уважайте интеллектуальную собственность и соблюдайте соответствующие законы и нормативные акты.

# Attention :
# Si vous souhaitez utiliser ce code à des fins commerciales, vous devez contacter l'auteur et obtenir une autorisation explicite.
# L'auteur n'est pas responsable des pertes directes ou indirectes causées par l'utilisation de ce code.
# En cas de violation des conditions ci-dessus, l'auteur se réserve le droit de poursuivre une action en justice.
# Avertissement :
# Veuillez respecter les droits de propriété intellectuelle et vous conformer aux lois et réglementations en vigueur.

 */
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
using System;

public class Menus : MonoBehaviour {

	public GameObject mainBall;
	public GameObject mainMenuBouncingBall;
	public GameObject mainMenu;
	public GameObject ballsShop;
	public GameObject upperMenu;
	public GameObject gameoverMenuUI;
	public GameObject pauseMenuUI;
	public GameObject achievementsUI;
	public GameObject bestScoreMainMenu;

	public GameObject numberOfStarsMainMenu;
	public GameObject numberOfStarsShop;
	private AudioSource buttonClickSound;

	void Start() {
		numberOfStarsMainMenu.GetComponent<Text> ().text = PlayerPrefs.GetInt ("numberOfStars").ToString();

		if (PlayerPrefs.GetInt ("currentLanguage") == 0) {
			bestScoreMainMenu.GetComponent<Text> ().text = "最高分\n" + PlayerPrefs.GetInt ("bestScore").ToString ();
		} else if (PlayerPrefs.GetInt ("currentLanguage") == 1) {
			bestScoreMainMenu.GetComponent<Text> ().text = "最高分\n" + PlayerPrefs.GetInt ("bestScore").ToString ();
		} else if (PlayerPrefs.GetInt ("currentLanguage") == 2) {
			bestScoreMainMenu.GetComponent<Text> ().text = "最高分\n" + PlayerPrefs.GetInt ("bestScore").ToString ();
		}

		buttonClickSound = GameObject.Find ("buttonClickSound").GetComponent<AudioSource> ();
		if (PlayerPrefs.GetInt ("restartTheGame") == 1) {
			PlayerPrefs.SetInt ("restartTheGame", 0);
			upperMenu.SetActive (true);
			mainMenuBouncingBall.SetActive (false);
			mainBall.SetActive (true);
			mainMenu.SetActive (false);
		}
	}
		
	public void StartTheGame() {
		buttonClickSound.Play ();
		upperMenu.SetActive (true);
		mainMenuBouncingBall.SetActive (false);
		mainBall.SetActive (true);
		mainMenu.SetActive (false);

		PlayerPrefs.SetInt ("numberOfGames", PlayerPrefs.GetInt ("numberOfGames") + 1);
		if (PlayerPrefs.GetInt ("numberOfGames") >= 10) {
			if (PlayerPrefs.GetInt ("play10Games") != 1) {
				PlayerPrefs.SetInt ("play10Games", 1);
				GameObject.Find ("Canvas").GetComponent<AchievementUnlocked> ().enabled = true;
				GameObject.Find ("Canvas").GetComponent<AchievementUnlocked> ().NameOfTheAchievement ("play 10 Games");
			}
		}
		if (PlayerPrefs.GetInt ("numberOfGames") >= 100) {
			if (PlayerPrefs.GetInt ("play100Games") != 1) {
				PlayerPrefs.SetInt ("play100Games", 1);
				GameObject.Find ("Canvas").GetComponent<AchievementUnlocked> ().enabled = true;
				GameObject.Find ("Canvas").GetComponent<AchievementUnlocked> ().NameOfTheAchievement ("play 100 Games");
			}
		}
		if (PlayerPrefs.GetInt ("numberOfGames") >= 1000) {
			if (PlayerPrefs.GetInt ("play1000Games") != 1) {
				PlayerPrefs.SetInt ("play1000Games", 1);
				GameObject.Find ("Canvas").GetComponent<AchievementUnlocked> ().enabled = true;
				GameObject.Find ("Canvas").GetComponent<AchievementUnlocked> ().NameOfTheAchievement ("play 1000 Games");
			}
		}
	}
	public void AchievementsMenu() {
		buttonClickSound.Play ();
		achievementsUI.SetActive (true);
	}
	public void ExitAchievementsMenu() {
		buttonClickSound.Play ();
		achievementsUI.SetActive (false);
	}

	public void BallsShop() {
		numberOfStarsShop.GetComponent<Text> ().text = PlayerPrefs.GetInt ("numberOfStars").ToString();
		buttonClickSound.Play ();
		ballsShop.SetActive (true);
	}
	public void ExitBallsShop (){
		numberOfStarsMainMenu.GetComponent<Text> ().text = PlayerPrefs.GetInt ("numberOfStars").ToString();
		buttonClickSound.Play ();
		ballsShop.SetActive (false);
	}

	public void ExitToMainMenu() {
		buttonClickSound.Play ();
		Vars.RestartAllVariables ();
		SceneManager.LoadScene (SceneManager.GetActiveScene ().name);
	}

	public void ShowGameoverMenu () {
		GameObject.Find ("gameOverSound").GetComponent<AudioSource> ().Play ();
		GameObject.Find ("ball").GetComponent<MainBall> ().enabled = false;
		gameoverMenuUI.SetActive (true);
	}
	public void ShowPauseMenu() {
		GameObject.Find ("pauseButtonSound").GetComponent<AudioSource> ().Play ();
		GameObject.Find ("ball").GetComponent<MainBall> ().enabled = false;
		Time.timeScale = 0;
		pauseMenuUI.SetActive (true);
	}
	public void HidePauseMenu() {
		buttonClickSound.Play ();
		GameObject.Find ("ball").GetComponent<MainBall> ().enabled = true;
		Time.timeScale = 1;
		pauseMenuUI.SetActive (false);
	}
	public void ContinueGame() {
		Debug.Log ("Put your code that shows rewarded ad and than call method ContinueGame() from Menus.cs script on line 117");
		buttonClickSound.Play ();
		
		//GameObject[] objects = GameObject.FindGameObjectsWithTag ("object");
		//foreach (GameObject sceneObject in objects) {
		//	if (sceneObject.GetComponent<Rigidbody2D> ().position.y < -0.5f) {
		//		Destroy (sceneObject);
		//	}
		//}

		//GameObject.Find ("ball").GetComponent<MainBall> ().enabled = true;
		//gameoverMenuUI.SetActive (false);

		TouchWatchAds();


    }
	public void SpeedUpGame() {
		buttonClickSound.Play ();
		Time.timeScale = 5f;
		GameObject.Find ("speedUpButton").SetActive (false);
	}
	public void RestartGame () {
		buttonClickSound.Play ();
		PlayerPrefs.SetInt ("restartTheGame", 1);
		Vars.RestartAllVariables ();
		SceneManager.LoadScene (SceneManager.GetActiveScene ().name);
	}
	private void ResetVariables() {
		Vars.level = 1;
		Vars.numberOfBalls = 1;
		Vars.newBalls = 1;
		Vars.ballHitBottom = 0;
		Vars.lastBallHitBottom = false;
		Vars.startMovingTowardsMainBall = false;
		Vars.ballsReachedDistance = 0;
		Vars.firstBallHitBottomCollider = false;
		Vars.firstBallHitXPos = 0;
		Vars.canContinue =  true;
		Vars.newWaveOfBricks = false;
		Vars.speedUpTimer = 0;
	}

    public void TouchWatchAds()
    {
        string videoAdid = VideData.Instance.GetVide();
        TTSDK.TTRewardedVideoAd r = AdMgr.Instance.ShowVideoAdNew(videoAdid);

        //创建激励视频关闭回调
        r.OnClose += (bol, val) =>
        {
            Debug.Log("关闭广告 ，是否已经看完" + bol);
            //看完广告获得提示
            if (bol)
            {
                GameObject[] objects = GameObject.FindGameObjectsWithTag("object");
                foreach (GameObject sceneObject in objects)
                {
                    if (sceneObject.GetComponent<Rigidbody2D>().position.y < -0.5f)
                    {
                        Destroy(sceneObject);
                    }
                }

                GameObject.Find("ball").GetComponent<MainBall>().enabled = true;
                gameoverMenuUI.SetActive(false);
				MaidianNew.MaidianBackCallback("");
                Debug.Log("广告看完");
            }
            else
            {
                Debug.Log("广告未看完");
            }
        };

        //创建报错回调  
        r.OnError += (code, errorMessage) =>
        {

            Debug.Log("code:" + code + "错误信息：" + errorMessage);
        };

        //展示广告（新版本必须调用，不然无法展示出来广告）
        r.Show();

    }
}
